iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0

會有測試替身的出現,要先介紹「被測試目標」(SUT, System Under Test)與「被依賴組件」(DOC, Depended-on Component)。SUT 是我們想要測試的目標,但因為其會受到 DOC 的影響,為了區隔出想要測試的目標,因此我們需要測試替身,來隔離出 SUT。

測試替身(Test Double),是由 Gerard Meszaros 於《xUnit Test Patterns》中所提出,並且他提出了五個種類。分別為: Dummy、Stub、Spy、Mock、Fake。

  • Dummy
    所謂的 Dummy,有點像是為了測試,要填充一個假的物件,也可以是一個空物件、空值。該物件與要測試的案例完全無關。

  • Stub
    Stub 有點像是一個可控的假物件,需要有這個假物件存在,才可以讓 SUT 避免受到 DOC 的影響。在 jest 中可使用 jest.fn() 搭配 mockReturnValue() 來指定一個 stub 的行為;在 mocha.js 中則可使用 sinon 的 sinon.stub()

  • Spy
    Spy,監視,用以監控「SUT 與 DOC」之間的互動。在 jest 中可使用 jest.spyOn();在 mocha.js 則可使用 sinon.spy()

  • Mock
    Mock 可以用來檢視「SUT 有沒有正確使用 stub、spy 等 DOC 的替身」。用以間接性的證明「SUT 在使用 DOC」是否如預期。在 jest 中可以使用 jest.mock();在 mocha.js 中則可以使用 sinon.mock()

  • Fake
    最後,Fake 則是輕量版、簡化的 DOC。產生一個小的、假的、具備 DOC 該具備的功能的假物件。


上一篇
[Day 12] 理解單元測試(三)- 簡介 Mocha
下一篇
[Day 14] 理解整合測試(ㄧ)
系列文
手動測試好累喔!一起來寫前端自動化測試吧~30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言